Spam Review Detection with Graph Convolutional Networks

本文主要研究利用图卷积网络进行垃圾评论过滤任务,作者设计了名为 GCN-based Anti-Spam System(GAS) 的垃圾评论过滤系统。GAS 会使用两个图来引入不同的上下文的信息。Xianyu Graph 是一个异构图,它引入局部上下文信息,另一个是同构图 Comment Graph,它引入了全局上下文信息。在这两个图上,分别运行不同的图卷积算法,并最终融合两个图模型的上下文信息,从而共同判断一个评论是不是有问题。

paper: https://drive.google.com/open?id=11G7RATs8Gq98Mnk5AyYfcAgCak8hXsvb
source: CIKM 2019

Introduction

本文主要研究利用图卷积网络进行垃圾评论过滤任务,在论文研究的场景中(阿里咸鱼),垃圾评论仅仅通过文本特征是很难识别的,需要结合发送这条评论的用户信息、接收这条评论的商品特征,甚至是发送这条信息的用户,他的其它评论行为以及与它类似的文本的特征。解决垃圾信息过滤的核心思想在于上下文,我们只有把文本信息放入对应的环境,才能准确判断它到底是不是垃圾评论。作者定义了两种上下文,即局部上下文和全局上下文。其中局部上下文包含发这条评论的买家特征及行为和这条评论对应的商品特征等信息,而全局上下文表示当前评论在全部评论中的扮演的角色。

以两种上下文信息为出发点,作者设计了名为 GCN-based Anti-Spam System(GAS) 的垃圾评论过滤系统。如下所示为 GAS 的整体概览,其中模型会从左侧图抽取出表示商品、用户和评论的信息,从右侧抽取出类似评论表示的意义。最后结合这些信息进行分类,模型就能很好地识别垃圾信息了。GAS 会使用两个图来引入不同的上下文的信息。Xianyu Graph 是一个异构图,它引入局部上下文信息,另一个是同构图 Comment Graph,它引入了全局上下文信息。在这两个图上,分别运行不同的图卷积算法,并最终融合两个图模型的上下文信息,从而共同判断一个评论是不是有问题。

Background

Graph Convolutional Networks

原始的GCN[Semi-supervised classification with graph convolutional networks]的定义如下:

这个公式中:

  • $\widetilde{A}=A+I$,$I$是单位矩阵。只使用A的话,由于A的对角线上都是0,所以在和特征矩阵H相乘的时候,只会计算一个node的所有邻居的特征的加权和,该node自己的特征却被忽略了。因此,给A加上一个单位矩阵I,这样就让对角线元素变成1了。
  • $\widetilde{D}$是$\widetilde{A}$的度矩阵(degree matrix),公式为 $\widetilde{D}_{ii}=\sum _{j} \widetilde{A}_{ij}$
  • $H^{(l)}$是第l层的特征,对于输入层的话,H就是所有节点的初始特征矩阵X,N×D维(N为节点数,D为节点特征维数)
  • σ是非线性激活函数

上图中的GCN输入一个图,通过若干层GCN每个node的特征从X变成了Z,但是,无论中间有多少层,node之间的连接关系,即A都是共享的。假设我们构造一个两层的GCN,激活函数分别采用ReLU和Softmax,则整体的正向传播的公式为:

最后,我们针对所有带标签的节点计算cross entropy损失函数:

由于即使只有很少的node有标签也能训练,作者称他们的方法为半监督分类。_不同的GCN传播算法稍有差异,但本质上都是从邻居节点聚合信息以及上一层的自身表示来更新当前节点的表示。_

Another View

另一种更加一般化的定义则是将GCN分为两部分:

  • aggregation:
  • combination:

其中aggregation负责聚合邻居节点的信息,$N(v)$代表节点v的邻居节点的集合(不包括自身),可以通过池化、注意力等计算;而combination负责组合邻居节点的信息以及节点自身的信息(上一层),例如Concat操作。在这种视角下,原始的GCN相当于是把两步操作结合到一起,通过$\widetilde{A}=A+I$直接对邻居节点和自身做传播计算。

此外,上述讨论的都是同构图(homogeneous),并没有区分不同的节点类型,忽略了边的属性信息。而异构图(heterogeneous,节点的种类或者边的种类大于2),需要在传播计算的时候分别考虑不同的节点类型,即不同的节点对应的不同的$W^{l}$。下式中$u, v$即为两种类型节点,对应$W^{l}_{U},W^{l}_{V}$:

GCN-based Anti-Spam model

Xianyu Graph 为一个标准的异构图,节点分为用户U和商品I两种类型,边即为评论,这个图是自动构建的。本文的目的就是对边做分类。

Aggregation Sub-layer 首先获取边的表征,聚合边的节点信息:

然后分别计算u,i的邻居聚合信息$h_{N(u)}, h_{N(i)}$:


Combination Sub-layer 将邻居信息与自身节点信息拼接。

同构图 Comment Graph,它引入了全局上下文信息。这个图是通过近似KNN算法把相似语义的评论连接到一起。这里使用普通的同构GCN即可获取comment表示。

最终结合两个图的信息做分类:

Reference